package com.coolw.test.validator.annotation;

import com.coolw.test.validator.PasswordValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 密码注解标识
 *
 * @author coolw
 * @date 2025/3/20 15:19
 */
@Documented
@Target(value = ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PasswordValidator.class)
public @interface Password {

    int min() default 6;

    int max() default 18;

    /**
     * 校验失败返回的信息
     */
    String message() default "请输入6-18位的密码";

    /**
     * 将validator进行分类，不同的类group中会执行不同的validator操作
     */
    Class<?>[] groups() default {};

    /**
     * 主要是针对bean，很少使用
     */
    Class<? extends Payload>[] payload() default {};
}
